// 场景：有一个存放了很多异步操作的数组，你如何将它们依次执行和返回结果？

//模拟异步操作，实际可能为发送请求，遍历执行 SQL 语句等等
function createPromise(time, value) {
    return new Promise((resolve) => {
        setTimeout(() => {
            resolve(value);
        }, time);
    })
}
// 定义异步函数数组
let asyncArray = [createPromise(3000, "promise 1"), createPromise(1000, "promise 2"), createPromise(5000, "promise 3")];

// 执行异步操作的函数
async function asyncTest() {
    console.time();
    console.info("start");

    // 执行异步函数数组
    // asyncArray.forEach(async element => {
    //     let res = await element
    //     console.log('生成的函数是==', res);
    // });

    // for(let element of asyncArray){
    //     let res=await element
    //     console.log('生成的函数是==',res);
    // }
    // for (const element of asyncArray) {
    //     // const res = await element;
    //     console.info("生成的函数是：", await element.then((res) => {
    //         console.info(res)
    //     }));
    // }

    // for await (const element of asyncArray) {
    //     console.info("生成的函数是=",element);
    // }
    console.info(await Promise.all(asyncArray))
    console.info("end");
    console.timeEnd();
}
asyncTest();